home *** CD-ROM | disk | FTP | other *** search
/ Softdisk Supreme / Softdisk Supreme.iso / pc / DSK Files / 0-49 / SD021b.dsk / HOME LEDGER.bas < prev    next >
BASIC Source File  |  2003-06-12  |  14KB  |  313 lines

  1. 3  REM <CTRL-M><CTRL-M>* * * HOME LEDGER * * *<CTRL-M><CTRL-M>   BY ALAN LACY<CTRL-M>   16667 SE 17<CTRL-M>   BELLEVUE, WA  98008<CTRL-M><CTRL-M>        VERSION CURRENT 1-6-83<CTRL-J>
  2. 4  REM <CTRL-M><CTRL-M>'INPUT NEARLY ANYTHING SUBR<CTRL-M>   FROM 'CALL APPLE' JAN82 P42<CTRL-J>
  3. 7  POKE 1013,76: POKE 1014,0: POKE 1015,3: REM  SETUP AMPERSAND VECTOR
  4. 8  PRINT  CHR$(4)"BLOAD INPUT NEARLY ANYTHING"
  5. 9  GOTO 50
  6. 10  PRINT : PRINT "TRANSACTION DESC: ": PRINT 
  7. 12  FOR I = 1 TO 15: PRINT TD$(I);: HTAB 20: PRINT TD$(I +15): NEXT 
  8. 15  RETURN 
  9. 50 D$ =  CHR$(4)
  10. 56  PRINT D$;"NOMON I,O,C"
  11. 80  GOTO 800
  12. 90  PRINT "                                     ";: RETURN 
  13. 99  REM <CTRL-M><CTRL-M><CTRL-M>*** DECIMAL JUSTIFICATION ***<CTRL-J>
  14. 100  IF  ABS(P) <.005  THEN P$ = "         ": GOTO 130
  15. 110 P =  SGN(P) * INT( ABS(P) *100 +.5)/100:P$ =  STR$( SGN(P) *( ABS(P) +.005)):P$ =  LEFT$(P$, LEN(P$) -1)
  16. 130  IF  LEN(P$) > = 9  THEN 145
  17. 140 P$ = " " +P$: GOTO 130
  18. 145  RETURN 
  19. 149  REM <CTRL-M><CTRL-M><CTRL-M>*** INPUT SUBROUTINE ***<CTRL-J>
  20. 150  INVERSE : VTAB VT: HTAB HT:IS$ = "":CP = 1
  21. 152  GET IC$: IF IC$ =  CHR$(27)  THEN  NORMAL : RETURN 
  22. 154  IF IC$ =  CHR$(13)  THEN 166
  23. 156  IF IC$ =  CHR$(8)  THEN 170
  24. 158  IF CP >FL  THEN  PRINT  CHR$(7);: GOTO 152
  25. 160  IF IC$ =  CHR$(21)  THEN 176
  26. 162  IF  ASC(IC$) <32  THEN  PRINT  CHR$(7);: GOTO 152
  27. 164 IS$ = IS$ +IC$: PRINT IC$;:CP = CP +1: GOTO 152
  28. 166  IF CP < = FL  THEN  FOR I = CP TO FL: PRINT "";: NEXT 
  29. 168  NORMAL : RETURN 
  30. 170 CP = CP -1: IF CP = 0  THEN  PRINT  CHR$(7);: GOTO 150
  31. 172  PRINT IC$;: IF CP >1  THEN IS$ =  LEFT$(IS$,CP -1): GOTO 152
  32. 174  GOTO 150
  33. 176 AS =  PEEK( PEEK(40) +256 * PEEK(41) + PEEK(36)): IF AS <32  THEN IC$ =  CHR$(AS +64): GOTO 164
  34. 178 IC$ =  CHR$(AS): GOTO 164
  35. 180  INVERSE : FOR I = 1 TO FL: PRINT " ";: NEXT : NORMAL : RETURN 
  36. 299  REM <CTRL-M><CTRL-M><CTRL-M>*** DISK READ ***<CTRL-J>
  37. 300  PRINT D$;"OPEN";MO$;".DATA"
  38. 310  PRINT D$;"READ";MO$;".DATA"
  39. 320  INPUT N
  40. 325  FOR I = 0 TO N
  41. 330  & CMT$(I)
  42. 335  FOR J = 0 TO 9
  43. 340  INPUT NR(I,J)
  44. 360  NEXT J,I
  45. 370  PRINT D$;"CLOSE"
  46. 380  RETURN 
  47. 399  REM <CTRL-M><CTRL-M><CTRL-M>*** DISK WRITE ***<CTRL-J>
  48. 400  PRINT D$;"OPEN";MO$;".DATA"
  49. 410  PRINT D$;"WRITE";MO$;".DATA"
  50. 420  PRINT N
  51. 425  FOR I = 0 TO N
  52. 430  PRINT CMT$(I)
  53. 435  FOR J = 0 TO 9
  54. 440  PRINT NR(I,J)
  55. 460  NEXT J,I
  56. 470  PRINT D$;"CLOSE"
  57. 480  RETURN 
  58. 500  REM <CTRL-M><CTRL-M><CTRL-M>*** INITIALIZE ***<CTRL-J>
  59. 505 N = 0:NR(0,1) = 0:NR(0,2) = 0:NR(0,3) = 0:NR(0,6) = 0
  60. 507 CMT$(0) = "START OF MONTH BALANCES"
  61. 510  CALL  -936: VTAB 4
  62. 520  INPUT "MONTH/YR (MMMYY) ";MO$
  63. 522  IF  LEN(MO$) < >5  THEN 520
  64. 525  PRINT : INPUT "ACCOUNT ONE BALANCE ";NR(0,4)
  65. 530  PRINT : INPUT "ACCOUNT TWO BALANCE ";NR(0,5)
  66. 540 NR(0,7) = NR(0,4) +NR(0,5)
  67. 550  GOSUB 400
  68. 560  GOTO 800
  69. 599  REM <CTRL-M><CTRL-M><CTRL-M>*** END ***<CTRL-J>
  70. 600  CALL  -936: VTAB 6: PRINT "END OF SESSION...BYE": END 
  71. 699  REM <CTRL-M><CTRL-M><CTRL-M>*** START NEW MONTH ***<CTRL-J>
  72. 700  CALL  -936: VTAB 4
  73. 710  PRINT "GIVE THE MOST RECENT MONTH/YEAR DISK    FILE.  TYPE 'C' IF YOU NEED TO LOOK AT  CATALOG"
  74. 720  PRINT : INPUT "USE FORM MMMYY ";MO$
  75. 730  IF MO$ = "C"  THEN  GOSUB 900: GOTO 720
  76. 735  IF  LEN(MO$) < >5  THEN 720
  77. 740  GOSUB 300
  78. 750  PRINT : PRINT "NOW GIVE THE NEXT CONSECUTIVE MO/YR     USING THE SAME FORM"
  79. 760  PRINT : INPUT MO$
  80. 762  IF  LEN(MO$) < >5  THEN  PRINT "USE FORM <MMMYY>!": GOTO 760
  81. 765 N1 = 0:NR(N,1) = 0:NR(N,2) = 0:NR(N,3) = 0:NR(N,6) = 0
  82. 767 CMT$(N) = "START OF MONTH BALANCES"
  83. 770  PRINT D$;"OPEN";MO$;".DATA"
  84. 772  PRINT D$;"WRITE";MO$;".DATA"
  85. 774  PRINT N1
  86. 775  PRINT CMT$(N)
  87. 776  FOR I = 0 TO 9
  88. 777  PRINT NR(N,I)
  89. 778  NEXT 
  90. 780  PRINT D$;"CLOSE"
  91. 799  REM <CTRL-M><CTRL-M><CTRL-M>*** MENU ***<CTRL-J>
  92. 800  CLEAR :D$ =  CHR$(4)
  93. 802  DIM TD$(30)
  94. 804  FOR I = 1 TO 30: READ TD$(I): NEXT 
  95. 805  DIM NR(70,9),CMT$(70)
  96. 808  CALL  -936: VTAB 4
  97. 810  PRINT "*** HOME FINANCIAL LOG ***"
  98. 820  PRINT : PRINT  TAB( 5)"1 - ACCOUNT TRANSACTION": PRINT  TAB( 5)"2 - START NEW MONTH": PRINT  TAB( 5)"3 - INITIALIZE (NO DISK FILE YET)": PRINT  TAB( 5)"4 - PRINT REPORTS"
  99. 825  PRINT  TAB( 5)"5 - CHANGE DATA": PRINT  TAB( 5)"6 - CRT LISTING": PRINT  TAB( 5)"7 - HELP": PRINT  TAB( 5)"8 - EXIT"
  100. 830  PRINT : INPUT "WHICH (1-8) ";K
  101. 840  IF K <1  OR K >8  THEN  PRINT "MUST BE 1 THRU 8, TRY AGAIN": GOTO 820
  102. 850  ON K GOTO 1000,700,500,4000,3000,1500,6000,600
  103. 899  REM <CTRL-M><CTRL-M><CTRL-M>*** CATALOG ***<CTRL-J>
  104. 900  PRINT D$;"CATALOG"
  105. 910  RETURN 
  106. 999  REM <CTRL-M><CTRL-M><CTRL-M>*** REGULAR TRANSACTION ***<CTRL-J>
  107. 1000  INPUT "GIVE THE MONTH/YEAR OF THIS TRANSACTION (MMMYY) ";MO$: IF  LEN(MO$) < >5  THEN 1000
  108. 1002  GOSUB 300
  109. 1005 N = N +1:NR(N,6) = 0
  110. 1010 NR(N,4) = NR(N -1,4):NR(N,5) = NR(N -1,5)
  111. 1014  PRINT 
  112. 1015  INPUT "IS THIS A TRANSFER (Y/N) ";A$
  113. 1020  IF A$ = "Y"  THEN 2000
  114. 1025  CALL  -936: PRINT "THIS IS ENTRY NUMBER ";N;" FOR ";MO$
  115. 1029 TF = 0
  116. 1030  VTAB 3: HTAB 1: PRINT "DAY OF TRANSACTION ";:FL = 2: GOSUB 180
  117. 1032  VTAB 5: HTAB 1: PRINT "COMMENT: ";:FL = 30: GOSUB 180
  118. 1034  VTAB 7: HTAB 1: PRINT "TRANSACTION DESC:  ";:FL = 2: GOSUB 180
  119. 1036  VTAB 9: HTAB 1: PRINT "AMOUNT OF CREDIT:  ";:FL = 7: GOSUB 180
  120. 1038  VTAB 11: HTAB 1: PRINT "AMOUNT OF DEBIT:  ";:FL = 7: GOSUB 180
  121. 1040  VTAB 13: HTAB 1: PRINT "ACCOUNT AFFECTED (1 OR 2):  ";:FL = 1: GOSUB 180
  122. 1042  VTAB 15: HTAB 1: PRINT "CHECK NUMBER:  ";:FL = 4: GOSUB 180
  123. 1045  IF TF = 1  THEN 1060
  124. 1050 VT = 3:HT = 20:FL = 2: GOSUB 150:NR(N,1) =  VAL(IS$)
  125. 1052 VT = 5:HT = 10:FL = 30: GOSUB 150:CMT$(N) = IS$
  126. 1055  VTAB 8: HTAB 1: CALL  -958: GOSUB 12
  127. 1057 VT = 7:HT = 20:FL = 2: GOSUB 150:NR(N,9) =  VAL(IS$)
  128. 1058  IF NR(N,9) <1  OR NR(N,9) >30  THEN 1057
  129. 1059  VTAB 7: HTAB 24: PRINT  MID$ (TD$(NR(N,9)),4): CALL  -958:TF = 1: GOTO 1036
  130. 1060 VT = 9:HT = 20:FL = 7: GOSUB 150:NR(N,2) =  VAL(IS$)
  131. 1064 VT = 11:HT = 19:FL = 7: GOSUB 150:NR(N,3) =  VAL(IS$)
  132. 1066  IF NR(N,2) = 0  AND NR(N,3) = 0  THEN  VTAB 12: HTAB 1: PRINT "NEED TO CREDIT OR DEBIT THE ACCOUNT    ": GOTO 1060
  133. 1068  IF NR(N,2) >0  AND NR(N,3) >0  THEN  VTAB 12: HTAB 1: PRINT "CANNOT CREDIT & DEBIT ACCT AT SAME TIME": GOTO 1060
  134. 1070 VT = 13:HT = 29:FL = 1: GOSUB 150: IF IS$ <"1"  OR IS$ >"2"  THEN  PRINT "<1> OR <2>": GOTO 1070
  135. 1075 K =  VAL(IS$) +3
  136. 1100 NR(N,0) = K
  137. 1120 NR(N,K) = NR(N,K) +NR(N,2) -NR(N,3)
  138. 1140 NR(N,7) = NR(N,4) +NR(N,5)
  139. 1185 VT = 15:HT = 16:FL = 4: GOSUB 150:NR(N,6) =  VAL(IS$)
  140. 1190  VTAB 17: HTAB 1: PRINT "<CTL-Q> TO ACCEPT ": GET A$: IF A$ < > CHR$(17)  THEN 1050
  141. 1200  PRINT : INPUT "MORE (Y/N) ";A$
  142. 1210  IF A$ = "Y"  THEN 1005
  143. 1220  GOSUB 400: GOTO 800
  144. 1345  VTAB 8: GOSUB 12: INPUT "TRANSACTION DESCRIPTION (1-30): ";NR(N,9)
  145. 1346  IF NR(N,9) <1  OR NR(N,9) >30  THEN 1045
  146. 1347  VTAB 8: PRINT "TRANSACTION DESC:  ";TD$(NR(N,9)): CALL  -958
  147. 1499  REM <CTRL-M><CTRL-M><CTRL-M>*** CRT LIST ***<CTRL-J>
  148. 1500  CALL  -936: VTAB 4
  149. 1510  PRINT "* * * CRT LISTING * * *"
  150. 1520  PRINT : PRINT "GIVE THE MONTH/YEAR THAT YOU WISH TO    SEE.  'C' IF YOU NEED CATALOG."
  151. 1525  PRINT "USE FORMAT MMMYY"
  152. 1530  PRINT : INPUT MO$
  153. 1540  IF MO$ = "C"  THEN  GOSUB 900: GOTO 1520
  154. 1545  IF  LEN(MO$) < >5  THEN 1525
  155. 1550  GOSUB 300
  156. 1560  CALL  -936
  157. 1570  FOR I = 0 TO N
  158. 1580  PRINT I;
  159. 1590  POKE 36,4: PRINT  LEFT$(CMT$(I),16);
  160. 1592 P = NR(I,2): GOSUB 100: POKE 36,21: PRINT P$;
  161. 1594 P = NR(I,3): GOSUB 100: POKE 36,31: PRINT P$;
  162. 1596  IF I >0  AND I/20 =  INT(I/20)  THEN  PRINT : PRINT "TYPE <RETURN> TO CONTINUE": GET A$: PRINT 
  163. 1600  NEXT 
  164. 1610  PRINT : PRINT "TYPE 'RETURN' TO RETURN TO MENU"
  165. 1620  GET A$
  166. 1630  GOTO 800
  167. 1999  REM <CTRL-M><CTRL-M><CTRL-M>*** TRANSFER ***<CTRL-J>
  168. 2000 NR(N,2) = 0:NR(N,3) = 0
  169. 2010  CALL  -936: VTAB 4
  170. 2015  PRINT "THIS IS ENTRY NUMBER ";N;" FOR ";MO$
  171. 2020  INPUT "DAY OF TRANSFER ";NR(N,1)
  172. 2030  PRINT : INPUT "COMMENT (UP TO 50 CHARS) ";CMT$(N)
  173. 2040  PRINT : INPUT "AMOUNT OF TRANSFER ";NR(N,8)
  174. 2050  PRINT : PRINT "FROM ACCOUNT ONE TO ACCOUNT TWO? (1)    OR FROM ACCOUNT TWO TO ACCOUNT ONE? (2)"
  175. 2060  PRINT : INPUT "1 OR 2 ";K:NR(N,0) = K
  176. 2065  IF K <1  OR K >2  THEN 2060
  177. 2070  IF K = 2  THEN NR(N,8) =  -NR(N,8)
  178. 2080 NR(N,4) = NR(N,4) -NR(N,8):NR(N,5) = NR(N,5) +NR(N,8)
  179. 2100 NR(N,7) = NR(N,4) +NR(N,5)
  180. 2250  PRINT : INPUT "MORE (Y/N) ";A$
  181. 2260  IF A$ = "Y"  THEN 1005
  182. 2270  GOSUB 400: GOTO 800
  183. 3000  REM <CTRL-M><CTRL-M><CTRL-M>*** CHANGE DATA ***<CTRL-J>
  184. 3005  PRINT : INPUT "MONTH/YEAR OF CHANGE (MMMYY) ";MO$: IF  LEN(MO$) < >5  THEN 3005
  185. 3010  GOSUB 300
  186. 3015  CALL  -936: VTAB 4
  187. 3020  PRINT "WHICH FIELD DO YOU WISH TO CHANGE?": PRINT : PRINT "IF UNSURE GO TO MENU AND USE 'CRT LIST' TO FIND THE INCORRECT FIELD (#) NUMBER"
  188. 3025  PRINT "INPUT <-1> TO RETURN TO MAIN MENU"
  189. 3030  PRINT : INPUT "WHICH ";K
  190. 3035  IF K <0  THEN 800
  191. 3040  CALL  -936: PRINT "PRESENT DATA FOR FIELD ";K;":"
  192. 3050  PRINT : PRINT "1 - DATE: ";: HTAB 25: PRINT NR(K,1): PRINT : PRINT "2 - COMMENT: ";: HTAB 25: PRINT CMT$(K)
  193. 3060  VTAB 8: PRINT "3 - CREDIT: ";: HTAB 25: PRINT NR(K,2): PRINT : PRINT "4 - DEBIT: ";: HTAB 25: PRINT NR(K,3): PRINT : PRINT "5 - ACCOUNT ONE: ";: HTAB 25: PRINT NR(K,4)
  194. 3070  PRINT : PRINT "6 - ACCOUNT TWO: ";: HTAB 25: PRINT NR(K,5): PRINT : PRINT "7 - CHECK NUMBER: ";: HTAB 25: PRINT NR(K,6): PRINT : PRINT "8 - OVERALL BALANCE: ";: HTAB 25: PRINT NR(K,7)
  195. 3075  PRINT : PRINT "9 - TRANSACTION DESC: ";: HTAB 25: PRINT NR(K,9): IF RF  THEN RF = 0: GOTO 3100
  196. 3080  VTAB 23: GOSUB 90: HTAB 1: INPUT "CHANGE WHICH (1-9) ";L: IF L <1  OR L >9  THEN 3080
  197. 3082  IF L >1  AND L <6  THEN CF = 1
  198. 3085  VTAB 1: GOSUB 90: FLASH : VTAB 1: HTAB 15: PRINT "CHANGE TO: ": NORMAL 
  199. 3090  ON L GOTO 3510,3520,3530,3540,3550,3560,3570,3580,3590
  200. 3100  VTAB 23: INVERSE : INPUT "ANOTHER CHANGE IN THIS FIELD (Y/N) ";A$: NORMAL 
  201. 3110  IF A$ = "Y"  THEN 3040
  202. 3115  IF CF = 1  THEN  GOSUB 3700:CF = 0
  203. 3120  VTAB 23: GOSUB 90: HTAB 1: INPUT "CHANGE A DIFFERENT FIELD (Y/N) ";A$
  204. 3130  IF A$ = "Y"  THEN 3015
  205. 3140  GOSUB 400
  206. 3150  GOTO 800
  207. 3510  VTAB 3: HTAB 24: INPUT NR(K,1): GOTO 3600
  208. 3520  VTAB 5: HTAB 24: INPUT CMT$(K): GOTO 3600
  209. 3530  VTAB 8: HTAB 24: INPUT NR(K,2): GOTO 3600
  210. 3540  VTAB 10: HTAB 24: INPUT NR(K,3): GOTO 3600
  211. 3550  VTAB 12: HTAB 24: INPUT NR(K,4): GOTO 3600
  212. 3560  VTAB 14: HTAB 24: INPUT NR(K,5): GOTO 3600
  213. 3570  VTAB 16: HTAB 24: INPUT NR(K,6): GOTO 3600
  214. 3580  VTAB 18: HTAB 24: INPUT NR(K,7): GOTO 3600
  215. 3590  VTAB 3: CALL  -958: GOSUB 10: PRINT : PRINT : VTAB 22: PRINT "9 - TRANSACTION DESC:";: HTAB 24: INPUT NR(K,9):RF = 1: GOTO 3040
  216. 3600  VTAB 1: GOSUB 90: HTAB 1: PRINT "PRESENT DATA FOR FIELD ";K;":": GOTO 3100
  217. 3700  FOR I = K TO N
  218. 3705  IF I = 0  THEN 3750
  219. 3710 NR(I,4) = NR(I -1,4):NR(I,5) = NR(I -1,5): IF NR(I,0) <3  THEN 3800
  220. 3720 L = NR(I,0)
  221. 3730 NR(I,L) = NR(I,L) +NR(I,2) -NR(I,3)
  222. 3740 NR(I,7) = NR(I,4) +NR(I,5)
  223. 3750  NEXT : RETURN 
  224. 3800 T = NR(I,8)
  225. 3810 NR(I,4) = NR(I,4) -T:NR(I,5) = NR(I,5) +T
  226. 3820 NR(I,7) = NR(I,4) +NR(I,5)
  227. 3830  GOTO 3750
  228. 3999  REM <CTRL-M><CTRL-M><CTRL-M>*** PRINT REPORTS ***<CTRL-J>
  229. 4000  PRINT D$;"RUN LEDGER REPORT"
  230. 5000  DATA 1. AUTO INSURE,2. AUTO EXPENSE,3. BOOKS/MAGS,4. BUSINESS EXP.,5. CLOTHING,6. CREDIT CARD
  231. 5010  DATA  7. DONATIONS,8. ELECTRICITY,9. ENTERTAINMENT,10. FED WITH TAX,11. FICA ,12. FOOD ,13. GASOLINE,14. GIFTS
  232. 5020  DATA 15. HEATING,16. HOBBY,17. HOME MAINT,18. INTEREST INCOME,19. MISC EXPENSE,20. MISC INCOME
  233. 5030  DATA  21. MORTGAGE,22. PETTY CASH,23. RETIRE (IRA),24. RETIRE (WORK),25. TELEPHONE,26. UNION DUES,27. VACATION,28. WAGES,29. WASTE-GARBAGE,30. WATER/SEWAGE
  234. 6000  CALL  -936
  235. 6010  PRINT "* * * INSTRUCTIONS * * *": PRINT : PRINT "ACCOUNT TRANSACTION - USE TO ADD, SUB-       TRACT, OR TRANSFER MONIES.  DATA        FILE MUST FIRST BE PRESENT.": PRINT 
  236. 6020  PRINT "START NEW MONTH - CREATES NEW MONTH          DATA FILE FROM OLD MONTH DATA FILE": PRINT 
  237. 6030  PRINT "INITIALIZE DATA - CREATES MONTH.DATA         FILE WHEN NONE EXISTED.": PRINT 
  238. 6040  PRINT "PRINT REPORTS - LOADS 'LEDGER REPORT'        PROGRAM TO PRINT REPORTS.": PRINT 
  239. 6045  PRINT "HIT <RETURN> TO CONTINUE.": GET A$: PRINT 
  240. 6050  PRINT "CHANGE DATA - ALLOWS EDITING OF INCOR-       RECT DATA.  WILL UPDATE (CORRECT)       DATA FROM FIELD EDITED TO EOF.": PRINT 
  241. 6060  PRINT "CRT LISTING - DISPLAYS FIELDS CURRENTLY      IN DATA FILE.  LETS YOU KNOW WHERE      YOU LEFT OFF FROM LAST DATA ENTRY       SESSION.": PRINT 
  242. 6070  PRINT "EXIT - QUIT PROGRAM.": PRINT 
  243. 6080  PRINT "HELP - YOU'RE LOOKING AT IT.": PRINT 
  244. 6090  PRINT "HIT <RETURN> FOR MAIN MENU": GET A$: GOTO 800
  245. 5245 P = NR(I,3): GOSUB 100:DB$ = P$
  246. 5247  POKE 36,72: PRINT DB$;
  247. 5250  IF NR(I,4) = NR(I -1,4)  THEN 5260
  248. 5255 P = NR(I,4): GOSUB 100:CU$ = P$
  249. 5257  POKE 36,82: PRINT CU$;
  250. 5260  IF NR(I,5) = NR(I -1,5)  THEN 5270
  251. 5265 P = NR(I,5): GOSUB 100:CS$ = P$
  252. 5267  POKE 36,92: PRINT CS$;
  253. 5270  IF NR(I,6) = 0  THEN 5280
  254. 5277  POKE 36,105: PRINT NR(I,6);
  255. 5280 P = NR(I,7): GOSUB 100:OB$ = P$
  256. 5285  POKE 36,113: PRINT OB$
  257. 5310  NEXT 
  258. 5330  PRINT  CHR$(29): PRINT  CHR$(1)
  259. 5332  PRINT : PRINT : PRINT : PRINT : PRINT  TAB( 28)"HUNGA INC"
  260. 5334  PRINT  CHR$(2)
  261. 5340  PRINT  CHR$(12)
  262. 5350  PRINT  CHR$(19)
  263. 5360  PRINT D$;"PR#0"
  264. 5370  RETURN 
  265. 5399  REM <CTRL-M><CTRL-M><CTRL-M>*** PRINT INCOME/EXPENSE ***<CTRL-J>
  266. 5400  PRINT D$;"PR#1"
  267. 5410  PRINT  CHR$(17)
  268. 5500  PRINT  CHR$(29)
  269. 5510  PRINT  TAB( 28)"LACY OF SEATTLE"
  270. 5520  PRINT  TAB( 22)"INCOME AND EXPENSE STATEMENT"
  271. 5530  PRINT  TAB( 33)MO$
  272. 5540  PRINT : PRINT : PRINT 
  273. 5600  FOR I = 1 TO N
  274. 5610  IF NR(I,2) = 0  THEN 5650
  275. 5620 P = NR(I,2): GOSUB 100:CR$ = P$
  276. 5630  PRINT CMT$(I);
  277. 5635  POKE 36,55: PRINT CR$
  278. 5640 X = X +NR(I,2)
  279. 5650  NEXT 
  280. 5655  PRINT 
  281. 5660 P = X: GOSUB 100:X$ = P$
  282. 5670  PRINT  CHR$(1);"TOTAL INCOME";
  283. 5680  POKE 36,25: PRINT X$: PRINT  CHR$(2)
  284. 5690  PRINT : PRINT 
  285. 5700  FOR I = 1 TO N
  286. 5710  IF NR(I,3) = 0  THEN 5750
  287. 5720 P = NR(I,3): GOSUB 100:DB$ = P$
  288. 5730  PRINT CMT$(I);
  289. 5735  POKE 36,55: PRINT DB$
  290. 5740 Y = Y +NR(I,3)
  291. 5750  NEXT 
  292. 5755  PRINT 
  293. 5760 P = Y: GOSUB 100:Y$ = P$
  294. 5770  PRINT  CHR$(1);"TOTAL EXPENSES";
  295. 5780  POKE 36,25: PRINT Y$
  296. 5790  PRINT : PRINT "* * NET INCOME * *";
  297. 5792 Z = X -Y:P = Z: GOSUB 100:Z$ = P$
  298. 5795  POKE 36,25: PRINT Z$
  299. 5800  PRINT  CHR$(2)
  300. 5810  PRINT : PRINT : PRINT "ACCOUNT BALANCES:"
  301. 5820  PRINT  TAB( 5)"TRUST ACCOUNT";
  302. 5825  POKE 36,20: PRINT CU$
  303. 5830  PRINT  TAB( 5)"CHECKING/SAVING";
  304. 5835  POKE 36,20: PRINT CS$
  305. 5840  PRINT  TAB( 5)"OVERALL BALANCE";
  306. 5845  POKE 36,20: PRINT OB$
  307. 5860  PRINT  CHR$(1)
  308. 5880  PRINT : PRINT : PRINT : PRINT : PRINT  TAB( 28)"HUNGA INC"
  309. 5890  PRINT  CHR$(2)
  310. 5895  PRINT  CHR$(12)
  311. 5900  PRINT  CHR$(19)
  312. 5910  PRINT D$;"PR#0"
  313. 5920  RETURN